草庐IT

c++ - const 到非常量 c++

全部标签

c - 当询问用户名时getenv返回null?

我想使用stdlib函数getenv()获取用户名,但是我总是得到NULL这是我编写的代码:#include#includemain(){char*hai;printf("ThecurrentUsernameis\n");hai="USER";printf("%s\n",getenv(hai));exit(0);}getenv()返回的值是否取决于您用来编译代码的机器,以及为什么返回值为NULL? 最佳答案 在Windows上,您需要使用getenv("USERNAME")。USER/USERNAME环境变量不是标准化的,除非您自己

c - 有没有办法检测是否按下了某个键?

我正在Windows计算机上的cygwin中编译和执行我的程序。我在C方面经验不足,但我想要一种方法来检测是否按下了一个键而不提示用户(例如我)。我的具有所需功能的伪代码如下所示。charch;while(1){if(KeyBeenPressed()){//akeyhasbeenpressedbeforegettingherech=getKeyPressed();if(ch=='0'){printf("youhavepressed0");}else{printf("youdid'tpresskey0");}}//dootherstuff}我自己在搜索网络后尝试解决这个问题如下所示。#i

python - 在 Python/C 中验证 Windows 服务器用户

我想在Python(2.6或2.7)/C代码中对用户进行身份验证。我必须创建一个简单的身份验证模块,它将用户名和密码作为输入并验证用户(例如UNIX的PAM模块)。有什么办法吗? 最佳答案 你在找类似LogonUser的东西吗??,对本地用户进行身份验证,例如:#!python#-*-coding:utf-8-*-fromosimportenvironfromctypesimportwindll,byref,POINTER,FormatError,GetLastErrorfromctypes.wintypesimport(LPCWS

c - 从内核驱动程序到达内核 session 空间

我正在编写一个内核驱动程序,它应该读取(在某些情况下还写入)内核session空间(win32k.sys)中的一些内存地址。我读过另一个主题,例如在Windbg中,我应该将上下文更改为随机用户进程以读取内核session空间的内存(使用.process/p)。我怎样才能在内核驱动程序中做到这一点?我应该创建一个与驱动程序通信的用户进程(这是我现在的想法,但我希望有更好的解决方案)还是有更简单的解决方案? 最佳答案 session空间未映射到系统地址空间(驱动程序共享,如果未附加到任何进程)。这就是为什么您在访问win32k时出现蓝屏

c++ - Windows 上 HANDLE 的来源

我目前正在从事一个项目(C语言),在该项目中我使用了不同的winHANDLE(互斥锁、信号量、线程……)。我的问题是:有没有办法检索HANDLE链接到的内核对象的类型?类似于:Get_HANDLE_source()或Is_thread_HANDLE()?谢谢,干杯! 最佳答案 正如NtQueryObject所说。但使用一些OO概念可能更好:structHandleVtable{/*functionpointertoappropriateimplementation*/};structHandleWrapper{structHandl

c - 打开串口 ANSI C

在过去的几个小时(几天)里,我一直在谷歌上搜索,以找到一个简单的工作示例,说明如何在Windows上的ANSIC中打开串行端口。我尝试打开一个txt文件,通过char方式发送到串口。(如果你能给我一个提示如何延迟1秒按字符发送字符,我也会很高兴!)这是我的代码,但不知何故它不起作用:(FILE*file;file=fopen("text.txt","r");if(file){while((c=getc(file))!=EOF){FILE*fp;fp=open("COM1",O_RDWR|O_NOCTTY|O_NDELAY);if(fp==-1)puts("Couldn'topenpor

我可以用 C(不是 C++)编写 Windows Phone 8 应用程序/游戏吗?

我非常喜欢C语言,所以我想用它来学习WindowsPhone8的编程。Microsoft是否支持C语言(我不喜欢C++,所以请不要在这里包括它)?如果没有,你知道任何支持C的移动平台吗?另外请不要在这里包括iOS,因为我没有足够的钱购买Mac或iPhone。非常感谢。 最佳答案 您可以使用C语言为Maemo(诺基亚N900)、MeeGo、TizenOS(三星(即将发布))、QNX(黑莓Playbook、黑莓10)、UbuntuTouch等编程。Android有NDK,不过除非您正在构建游戏等,否则这不会是默认选择。对于Windows

WaitForSingleEvent 可以等待事件被重置吗?

我正在尝试编写一个线程体(例如,myThread),它使用手动重置事件与父线程同步,例如g_myThreadEvent。myThread使用此事件通知父级已成功检索输入参数。我想知道父级是否可以重复使用相同的事件来指示myThread退出。以下几行中的一些内容:child:g_myThreadEvent=UNSIGNALLED.myThread(){read_inparam()set(g_myThreadEvent);for(;;){//dosomethingimportantif(is_reset(g_myThreadEvent))break;}}家长:start_thread(){

windows - 重命名具有非常大目录结构的空间的文件

我已经通读并尝试了这里的许多关于如何在嵌套目录结构中用空格重命名文件的答案。但是,它们似乎不适用于我的情况。他们都是段错误。在32,768个目录的目录结构中,我只有将近1,000,000个文件。这也在Windows(Server2008R2)上,我正在运行MINGW32给我Bash3.1。目录位于类似00/00/file101/00/file2的结构中,其中每个子目录“系列”从00到zz不等。我相信目录结构只有2层深,但我可能是错的。从Windows资源管理器的“属性”生成文件计数大约需要45分钟。我认为这里发布的答案是段错误,因为它们正在耗尽内存构建或遍历这些目录。这是我在此处发布之

mysql - 在两个表 : Why? 的非常简单的情况下,MySQL 5.6.16 中的 "Cannot add foreign key constraint"错误

这是我尝试执行的确切SQL(在Windows上使用SQLYog作为MySQL客户端):DROPTABLEIFEXISTS`test`;CREATETABLE`test`(`id`INT(11)NOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))ENGINE=INNODB;DROPTABLEIFEXISTS`temp`;CREATETEMPORARYTABLE`temp`(dish_idINT(11)NOTNULL,user_idINT(11)NOTNULL,UNIQUEKEY(dish_id,user_id),FOREIGNKEY`test`(dish_id)